﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using Ext.Net;
using ENT.GP.Core;
using ENT.GP.Core.Core;
using entgpguayas.Code;
using System.IO;

namespace entgpguayas.Empresa
{
    public partial class Empresa : PaginasUsuario
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!IsPostBack)
                {
                    this.StoreEstado.DataSource = new object[]
                    {
                        new object[] { "1", "Activo"},
                        new object[] { "0", "No Activo"}
                    };

                    this.StoreEstado.DataBind();
                    this.cbxEstado.SelectedIndex = 0;
                }
            }
            catch (Exception ex)
            {
                Util.RegistarLog(ex.ToString());
            }            
        }
        /// <summary>
        /// Invoca metodo para actualizar datos de la grid
        /// </summary>
        private static void CallRefreshGrid()
        {
            X.Js.AddScript("#{StoreEmpresa}.load();");
        }
        protected void StoreRefresh(object sender, StoreRefreshDataEventArgs e)
        {
            EmpresaCriterio criterio = EmpresaCriterio.NewEmpresaCriterioRoot();
            var vCbxEstado           = e.Parameters["cbxEstado_bprm"];
            int iCbxEstado           = 0;
            criterio.Descripcion     = string.Format("{0}", e.Parameters["txtDescripcion_bprm"]);// txtDescripcion.Text
            criterio.Nombre          = string.Format("{0}", e.Parameters["txtNombre_bprm"]);//txtNombre.Text
            int.TryParse(vCbxEstado, out iCbxEstado);

            if (iCbxEstado != 0)
            {
                criterio.Estado         = iCbxEstado;//
                StoreEmpresa.DataSource = EmpresaLista.GetEmpresaLista(criterio);
                StoreEmpresa.DataBind();
            }
            else
            {
                UtilP.MostrarNotificacion("Seleccione Estado", "Aviso", MessageBox.Icon.INFO);
            }
        }
        protected void btnNuevo_Click(object sender, DirectEventArgs e)
        {
            string operacion = e.ExtraParams["Operacion"];
            wucEmpresa1.Mostrar(operacion,0,true);
        }
        protected void command_Click(object sender, DirectEventArgs e)
        {
            int idRol;
            int.TryParse(e.ExtraParams["Id"], out idRol);
            hidIdRol.Text    = e.ExtraParams["Id"];

            string operacion = e.ExtraParams["Operacion"];
            switch (operacion)
            {
                 case "Eliminar":
                     X.Msg.Confirm("Aviso", "Esta seguro de eliminar el item",
                         new MessageBoxButtonsConfig
                         {
                             Yes = new MessageBoxButtonConfig
                             {
                                  
                                  Handler = "RolAjax.Eliminar();",
                                  Text    = "Si"
                             },
                             No = new MessageBoxButtonConfig
                             {
                                 Text = "No"
                             }
                         }).Show();

                     break;
                 case "Editar":
                     wucEmpresa1.Mostrar(operacion, idRol,true);
                     break;
                case "Activar":
                     Activar();
                    break;
             }

        }
        
        [DirectMethod]
        public void Eliminar()
        {
            try
            {
                int idEmp;
               
                int.TryParse(hidIdRol.Text, out idEmp);
                var empDelete = Empresas.Get(idEmp);
                empDelete.Delete();
                empDelete.Save();
               
                UtilP.MostrarNotificacion("El elemento se elimino correctamente", "Aviso", MessageBox.Icon.INFO);

                CallRefreshGrid();

            }
            catch (Exception ex)
            {
                Util.RegistarLog(ex.ToString());
                UtilP.MostrarNotificacion("El elemento no se elimino", "Aviso", MessageBox.Icon.ERROR);
                CallRefreshGrid();
            }

        }

        public void Activar()
        {
            try
            {
                int idEmp;

                int.TryParse(hidIdRol.Text, out idEmp);
                var empActivar = Empresas.Get(idEmp);
                empActivar.Estado = 1;
                empActivar.Save();

                UtilP.MostrarNotificacion("La empresa " + empActivar.Nombre.ToUpper() + "  se activo correctamente", "Aviso", MessageBox.Icon.INFO);
                GridPanelEmpresa.DeleteSelected();
                //
                CallRefreshGrid();
            }
            catch (Exception ex)
            {
                Util.RegistarLog(ex.ToString());
                UtilP.MostrarNotificacion("La empresa no se activo correctamente", "Aviso", MessageBox.Icon.ERROR);
            }

        }

        /*
        public void BindDataSearch()
        {
            EmpresaCriterio criterio = EmpresaCriterio.NewEmpresaCriterioRoot();
            criterio.Descripcion = string.Format("{0}", txtDescripcion.Text);
            criterio.Nombre = string.Format("{0}", txtNombre.Text);
            if (cbxEstado.SelectedIndex != -1)
            {
                criterio.Estado = Convert.ToInt32(cbxEstado.SelectedItem.Value);
                StoreEmpresa.DataSource = EmpresaLista.GetEmpresaLista(criterio);
                StoreEmpresa.DataBind();
            }
            else
            {
                UtilP.MostrarNotificacion("Seleccione Estado", "Aviso", MessageBox.Icon.INFO);
            }
        }

        protected void btnBuscar_Click(object sender, DirectEventArgs e)
        {
            try
            {
                //hidEstado.SetValue
                //GridPanelEmpresa.ColumnModel.SetHidden(4,true);
                hidEstado.Value = cbxEstado.SelectedItem.Value;
                BindDataSearch();
            }
            catch { }
        }
       */

    }
}
